home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 June
/
EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso
/
earcd
/
arexx
/
trxtlsr3.lha
/
PGP2GUI
/
PGP2GUI.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1996-04-22
|
28KB
|
935 lines
/*
$VER: PGP2TRXGUI.rexx V1.3 (11.2.96) © by Nils Görs
Dies ist wieder eine der vielen Gui's für PGP. Aber dies ist die
erste, die in ARexx geschrieben wurde ;-)
This is one of those GUI for PGP. But this is the first one written
in ARexx ;-)
*/
/* In welcher Sprache soll das Skript laufen? */
Sprache = "deutsch"
Sprache = "english"
/* Wo befindet sich PGP ?? */
PGP.exe = "PGP"
/* Wie ist der Name der PGP-Pfad-Variable ?? */
PGPVariable = "PGPPATH"
/* In welches File sollen temporäre Daten geschrieben werden? */
PGPOut = "t:qwer.pgp"
/* Informationen über das Ausgabefenster */
LeftBorder = 10 /*Abstand linker Rand */
TopBorder = 300 /*Abstand vom oberen Rand*/
OutPutWidth = 640 /*Breite des Fensters */
OutPutHeight = 150 /*Höhe des Fensters */
/************************************************
* Please don't change anything under this line *
************************************************/
OPTIONS RESULTS
PARSE ARG PubScreen
IF PubScreen == "?" THEN DO
OPTIONS PROMPT "PUBSCREEN/K: "
PARSE PULL PubScreen
END
CALL _InitAll
CALL _InitIDList
/*
** Beschreibung der Applikation
*/
appname = 'PGPTrxGui'
applongname = 'PGPTrxGui - ©1995/96 by Nils Görs'
appinfo = 'Graphical-User-Interface for PrettyGoodPrivacy(tm)'
appversion = '1.3'
apprelease = '3'
appdate = '11.2.96'
_maintags:
windowtags = WindowID(1),
PubScreenName(PubScreen),
WindowTitle(appname appversion),
QuickHelpOn(HelpBool),
BeginMenu(localestring(MSG_MAIN_PROJECT)),
MenuItem(localestring(MSG_MAIN_MENUITEM_ABOUT),100) ItemBarlabel,
MenuItemC(localestring(MSG_MAIN_MENUITEM_HELP),103),
MenuItem(localestring(MSG_MAIN_MENUITEM_CHANGE),102),
MenuItem(localestring(MSG_MAIN_MENUITEM_ICONIFY),104) ItemBarlabel,
MenuItem(localestring(MSG_MAIN_MENUITEM_QUIT),101),
'VertGroupA Space',
'HorizGroupA Space',
'TROB_FrameBox TRFB_FRAMING',
'VertGroupA',
Button(localestring(MSG_MAIN_GENERATEKEY),1),
'TRDO_QuickHelpString "Generieren Sie sich ihren eigenen Sicherheitsschlüssel."',
Button(localestring(MSG_MAIN_CHECKOFSIGN),2),
'TRDO_QuickHelpString "Überprüfen Sie bitte einmal ob Schlüsseldateien vom Besitzer beglaubigt sind."',
Button(localestring(MSG_MAIN_EDITKEY),3),
'TRDO_QuickHelpString "Neue UserID anhängen, Pass phrase ändern bzw. andere User einstufen."',
Button(localestring(MSG_MAIN_VIEWCONTENTS),4),
'TRDO_QuickHelpString "Zeigt an welche öffentlichen Schlüssel sich in Ihrem pubring befinden."',
Button(localestring(MSG_MAIN_VIEWFINGERPRINTS),5),
'TRDO_QuickHelpString "Zeigt die Fingerprints der Anwender an."',
Button(localestring(MSG_MAIN_SAVEASCIIKEY),6),
'TRDO_QuickHelpString "Speichert einen öffentlichen Schlüssel im ASCII-Format ab."',
'EndGroup',
,
'SpaceS VertSeparator SpaceS',
,
'VertGroupA',
'TROB_FrameBox TRFB_FRAMING',
'VertGroupA',
Button(localestring(MSG_MAIN_SAVEKEY),7),
'TRDO_QuickHelpString "Speichert einen öffentlichen Schlüssel im Binärformat ab."',
Button(localestring(MSG_MAIN_ADDKEY),8),
'TRDO_QuickHelpString "Nimmt einen öffentlichen Schlüssel, aus einer Datei, in ihren pubring auf."',
Button(localestring(MSG_MAIN_DELETEKEY),9),
'TRDO_QuickHelpString "Entfernt einen öffentlichen Schlüssel aus ihrem pubring."',
Button(localestring(MSG_MAIN_SIGNKEY),10),
'TRDO_QuickHelpString "Setzen Sie eine Unterschrift unter einen öffentlichen Schlüssel."',
Button(localestring(MSG_MAIN_REMOVESIGNATURE),11),
'TRDO_QuickHelpString "Entfernen Sie eine Unterschrift von einem öffentlichen Schlüssel."',
Button(localestring(MSG_MAIN_REVOKEKEY),12),
'TRDO_QuickHelpString "Erklären Sie einen Schlüssel für ungültig !"',
'EndGroup Space',
'EndGroup Space',
'EndGroup',
,
'HorizGroupA Space',
'TROB_FrameBox TRFB_FRAMING',
'VertGroupA',
Button(localestring(MSG_MAIN_CRYPTFILE),13),
'TRDO_QuickHelpString "Verschlüsselt eine Datei Ihrer Wahl."',
Button(localestring(MSG_MAIN_ENCRYPCHECKSIGNA),14),
'TRDO_QuickHelpString "Entschlüsselt eine Datei für Sie und überprüft diese auf korrektheit."',
Button(localestring(MSG_MAIN_SIGNFILE),15),
'TRDO_QuickHelpString "Setzt eine Unterschrift unter eine Datei."',
'SpaceS',
'LineArray',
'BeginLine',
'HorizGroupS Space EndGroup',
CheckBox(20) 'TRDO_QuickHelpString "Erstellt eine seperate Unterschrift für eine Datei."',
'Space',
Text3(localestring(MSG_MAIN_BREAKSIGNATURE)) 'TRAT_ID 20',
'HorizGroupS Space EndGroup',
'EndLine',
'SpaceS',
'BeginLine',
'HorizGroupS Space EndGroup',
CheckBox(21),
'TRDO_QuickHelpString "Erzeugt eine Datei im ASCII-Format (z.b. zum E-Mail Versand)."',
'Space',
Text3(localestring(MSG_MAIN_ENABLEASCIIARMOR)) 'TRAT_ID 21',
'HorizGroupS Space EndGroup',
'EndLine',
'SpaceS',
'BeginLine',
'HorizGroupS Space EndGroup',
CheckBox(22),
'TRDO_QuickHelpString "Nachrichten im Klartext mit ASCII-Unterschrift."',
'Space',
Text3(localestring(MSG_MAIN_SIGNEDMESSAGES)) 'TRAT_ID 22',
'HorizGroupS Space EndGroup',
'EndLine',
'EndArray',
'Space',
'EndGroup Space',
'EndGroup Space',
'EndGroup Space EndProject',
/*
** Unterbrechungssignale
*/
SIGNAL ON break_c
/*SIGNAL ON failure*/
SIGNAL ON halt
SIGNAL ON ioerr
SIGNAL ON syntax
app = TR_CREATEAPP('TRCA_Name' '"'appname'"',
'TRCA_LongName' '"'applongname'"',
'TRCA_Info' '"'appinfo'"',
'TRCA_Version' '"'appversion'"',
'TRCA_Release' '"'apprelease'"',
'TRCA_Date' '"'appdate'"',
'TAG_END')
IF app ~= '00000000'x THEN DO
window = TR_OPENPROJECT(app,windowtags)
WindowProject=C2D(window) /* zum Locken des Fensters bei Über */
IF window ~= '00000000'x THEN DO
ende = 0
CheckBox1 = 0
CheckBox2 = 0
CheckBox3 = 0
IF HelpBool = 1 THEN CALL TR_SetAttribute(window,103,TRMN_Flags,TRMF_CHECKED)
DO WHILE ende ~= 1
CALL TR_WAIT(app,'')
DO WHILE TR_HANDLEMSG(app,'event')
/******************
*** CLOSEGADGET ***
*******************/
IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
setuni = 0
IF event.trm_project = dummywindow THEN DO
CALL _uniconify
setuni = 1
END
IF setuni ~= 1 THEN DO
IF event.trm_project = window THEN DO
nummer = TR_GETATTRIBUTE(window,10,'TRAT_Value')+1
ende = 1
END
END
END
/*************
*** GADGET ***
**************/
IF event.trm_class = 'TRMS_ACTION' THEN DO
SELECT
WHEN event.trm_id = 1 THEN CALL _KeyGenerieren
WHEN event.trm_id = 2 THEN CALL _BeglaubigungUeberpruefen
WHEN event.trm_id = 3 THEN CALL _KeyEditieren
WHEN event.trm_id = 4 THEN CALL _InhaltAnzeigen
WHEN event.trm_id = 5 THEN CALL _FingerPrintAnzeigen
WHEN event.trm_id = 6 THEN CALL _ASCIIKeySpeichern
WHEN event.trm_id = 7 THEN CALL _KeySpeichern
WHEN event.trm_id = 8 THEN CALL _KeyHinzufuegen
WHEN event.trm_id = 9 THEN CALL _Keyloeschen
WHEN event.trm_id = 10 THEN CALL _KeyUnterschreiben
WHEN event.trm_id = 11 THEN CALL _UnterschriftEntfernen
WHEN event.trm_id = 12 THEN CALL _KeyZurueckziehen
WHEN event.trm_id = 13 THEN CALL _DateiVerschluesseln
WHEN event.trm_id = 14 THEN CALL _DateiEntschluesseln
WHEN event.trm_id = 15 THEN CALL _DateiUnterschreiben
WHEN event.trm_id = 100 THEN CALL about
WHEN event.trm_id = 102 THEN CALL _NewPubScreen
WHEN event.trm_id = 104 THEN CALL _Iconify
WHEN event.trm_id = 101 THEN DO
Erg=rtezrequest(localestring(MSG_REQUEST_REALLYQUIT),localestring(MSG_YESNO),,"rt_pubscrname="PubScreen)
IF Erg == 1 THEN ende = 1
END
OTHERWISE
NOP
END
END
/***************
*** CHECKBOX ***
****************/
IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN event.trm_id = 103 THEN DO
HelpBool = TR_GETATTRIBUTE(window,103,'TRAT_VALUE')
CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',HelpBool)
END
WHEN event.trm_id = 20 THEN
CheckBox1=event.trm_data /*Abgetrennte Unterschrift?*/
WHEN event.trm_id = 21 THEN
CheckBox2=event.trm_data /*Radix64-Format*/
WHEN event.trm_id = 22 THEN
CheckBox3=event.trm_data /*Text in Klartext*/
OTHERWISE NOP
END
IF CheckBox1+CheckBox2+Checkbox3 ~= 0 THEN
CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',1)
IF CheckBox1+CheckBox2+Checkbox3 == 0 THEN
CALL TR_SETATTRIBUTE(window,14,'TRAT_Disabled',0)
END
END
END
CALL TR_CLOSEPROJECT(window)
END
CALL TR_DELETEAPP(app)
END
EXIT(0)
/*******************************************
*** Unterroutinen für die PGP-Ausführung ***
********************************************/
_KeyGenerieren:
ADDRESS COMMAND PGP.exe '-kg'
RETURN
/*
***
*/
_BeglaubigungUeberpruefen:
HeadLine = localestring(MSG_CHECKWHICHKEY)
NotMore = 0 /* Gadget unghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN DO
ende = 0
RETURN
END
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-kc "'pgpuserliste.lnummer'" >'PgPOut||2
WHEN ende = 3 THEN
ADDRESS COMMAND PGP.exe '-kc >'PgPOut||2
OTHERWISE
NOP
END
ende = 0
IF RXTR_READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
CALL _NormalListView
RETURN
/*
***
*/
_KeyEditieren:
HeadLine = localestring(MSG_EDITWHICHUSERID)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-ke "'pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_InhaltAnzeigen:
ADDRESS COMMAND PGP.exe '-kvv >'PgpOut||2
IF RXTR_READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
CALL _NormalListView
RETURN
/*
***
*/
_FingerPrintAnzeigen:
HeadLine = localestring(MSG_SHOWWHICHFINGERPRINTS)
NotMore = 0 /* Gadget unghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN DO
ende = 0
RETURN
END
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-kvc "'pgpuserliste.lnummer'" >'PgPOut||2
WHEN ende = 3 THEN
ADDRESS COMMAND PGP.exe '-kvc >'PgpOut||2
OTHERWISE
NOP
END
IF READFILE(PgpOut||2,TemporaryList) == 0 THEN EXIT(5)
ADDRESS COMMAND 'Delete' pgpout||2 'QUIET'
CALL _NormalListView
ende = 0
RETURN
/*
***
*/
_ASCIIKeySpeichern:
HeadLine = localestring(MSG_SAVEWHICHKEYASASCII)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-kxa "'pgpuserliste.lnummer'" "'PGPPath||pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_KeySpeichern:
HeadLine = localestring(MSG_WHICHKEYTOSAVE)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-kx "'pgpuserliste.lnummer'" "'PGPPath||pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_KeyHinzufuegen:
CALL TR_LOCKPROJECT(window)
CALL rtfilerequest(,,localestring(MSG_REQUEST_PLEASECHOOSE),,"rt_pubscrname="PubScreen "rtfi_flags=freqf_multiselect",files)
IF files == 1 THEN DO
do i = 1 to files.count
ADDRESS COMMAND Pgp.exe '-ka' files.i
END
END
CALL TR_UNLOCKPROJECT(window)
DROP files
RETURN
/*
***
*/
_Keyloeschen:
HeadLine = localestring(MSG_WHICHUSERID)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN DO
ADDRESS COMMAND PGP.exe '-kr "'pgpuserliste.lnummer'"'
IF (RC) = 0 THEN CALL _InitIDList
END
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_KeyUnterschreiben:
HeadLine = localestring(MSG_SIGNWHICHKEY)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-ks "'pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_UnterschriftEntfernen:
HeadLine = localestring(MSG_DELETEWHICHSIGN)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-krs "'pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_Keyzurueckziehen:
HeadLine = localestring(MSG_DELETEWHICHSIGN)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe '-kd "'pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
RETURN
/*
***
*/
_Dateiverschluesseln:
File=rtfilerequest(,,localestring(MSG_REQUEST_PLEASECHOOSE),,"rt_pubscrname="PubScreen)
IF file ~= "" THEN DO
HeadLine = localestring(MSG_WHICHFILEENCODE)
NotMore = 1 /* Gadget ghosten */
CALL _ListViewUserListe
template = '-e'
IF CheckBox1 == 1 THEN template = template||"b" /*Abgetrennte Unterschrift*/
IF CheckBox2 == 1 THEN template = template||"a" /*Radix64-Format*/
IF CheckBox3 == 1 THEN template = template||" +clearsig=on" /*in Klartext*/
SELECT
WHEN ende = 1 THEN nop
WHEN ende = 2 THEN
ADDRESS COMMAND PGP.exe template file '"'pgpuserliste.lnummer'"'
OTHERWISE
NOP
END
ende = 0
END
DROP file
DROP template
RETURN
/*
***
*/
_Dateientschluesseln:
File=rtfilerequest(,,localestring(MSG_PLEASECHOOSEFILE),,"rt_pubscrname="PubScreen)
IF file ~= "" THEN
ADDRESS COMMAND PGP.exe file
DROP file
RETURN
/*
***
*/
_DateiUnterschreiben:
File=rtfilerequest(,,localestring(MSG_PLEASECHOOSEFILE,,"rt_pubscrname="PubScreen)
IF file ~= "" THEN DO
template = '-s'
IF CheckBox1 == 1 THEN template = template||"b" /*Abgetrennte Unterschrift*/
IF CheckBox2 == 1 THEN template = template||"a" /*Radix64-Format*/
IF CheckBox3 == 1 THEN template = template||" +clearsig=on" /*in Klartext*/
ADDRESS COMMAND PGP.exe template file
END
DROP file
DROP template
RETURN
/******************************
*** Liste mit ID's besorgen ***
*******************************/
_InitIDList:
ADDRESS COMMAND 'pgp >'PgpOut '-kv'
IF RXTR_READFILE(PgpOut,PgpUserListebak) == 0 THEN EXIT(5)
reeD=WORDINDEX(PgpUserListebak.4,4)
j = 1
do i = 4 to PgpUserListebak.0-1
UserID=SUBSTR(PgpUserListebak.i,reeD)
PgpUserListe.j = UserID
PgpUserListe.0 = j
j = j+1
END
ADDRESS COMMAND 'delete' pgpout 'QUIET'
RETURN
/******************************
*** ListView zum auswählen! ***
*******************************/
_ListViewUserListe:
RemoveListTags = WindowID(2),
WindowPosition('TRWP_MOUSEPOINTER'),
WindowFlags('TRWF_NOCLOSEGADGET'),
WindowTitle(HeadLine),
PubScreenName(Pubscreen),
'VertGroupA',
'Space',
'HorizGroupA',
'Space',
ListSS('pgpuserliste',301,0,0),
'Space',
'EndGroup',
'Space',
'HorizSeparator',
'Space',
'HorizGroupA',
'Space',
ButtonRE(localestring(MSG_BUTTON_SHOWONE),304),
Button(localestring(MSG_BUTTON_SHOWALL),302),
Button(localestring(MSG_BUTTON_CANCEL),303),
'Space',
'EndGroup Space EndGroup EndGroup EndProject'
ListViewUserListe = TR_OPENPROJECT(app,Removelisttags)
IF ListViewUserListe ~= '00000000'x THEN DO
CALL TR_LOCKPROJECT(window)
IF NotMore == 1 THEN
CALL TR_SETATTRIBUTE(ListViewUserListe,302,'TRAT_Disabled',1)
ende = 0
DO WHILE ende = 0
DO WHILE TR_HANDLEMSG(app,'event2')
/* Alle Gadget */
IF event2.trm_id = 302 THEN DO
ende = 3
END
/* Cancel Gadget */
IF event2.trm_id = 303 THEN ende = 1
/* Einen Eintrag */
IF event2.trm_id = 304 THEN DO
LNummer=TR_GETATTRIBUTE(ListViewUserListe,301,'TRAT_Value')+1
ende = 2
END
IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
IF event2.trm_id = 301 THEN DO
IF BITAND(D2X(event2.trm_qualifier),'0200'x) = '0200'x THEN DO
LNummer=TR_GETATTRIBUTE(ListViewUserListe,301,'TRAT_Value')+1
ende = 2
END
END
END
END
END
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(ListViewUserListe)
END
RETURN
_NormalListView:
RemoveListTags = WindowID(3),
WindowPosition('TRWP_MOUSEPOINTER'),
WindowTitle(localestring(MSG_CONTENTS)),
PubScreenName(Pubscreen),
'VertGroupAC',
'Space',
'HorizGroupAC',
'Space',
ListRO('TemporaryList',301,0),
'EndGroup',
'HorizSeparator SpaceS',
CenteredButtonR(localestring(MSG_BUTTON_CANCEL),302),
'Space EndGroup Space EndProject'
NormalListView = TR_OPENPROJECT(app,Removelisttags)
IF NormalListView ~= '00000000'x THEN DO
CALL TR_LOCKPROJECT(window)
ende = 0
DO WHILE ende ~= 1
DO WHILE TR_HANDLEMSG(app,'event2')
/* Cancel Gadget */
IF event2.trm_id = 302 THEN ende = 1
IF event2.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
ende = 1
END
END
END
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(NormalListView)
END
ende = 0
RETURN
/*******************************************************************************
** Info über das Programm anzeigen
*******************************************************************************/
about:
CALL TR_AUTOREQUEST(app,window,PubScreenName(PubScreen),
BeginRequester(localestring(MSG_ABOUT),'TRWP_CENTERDISPLAY'),
'VertGroupA',
'Space',
CenteredText3(appname appversion '('||appdate||') (C) 1995/1996 by Nils Görs <N.Goers@Art-Line.de>'),
'SpaceS',
CenteredText(appinfo),
'Space',
'HorizSeparator',
'Space',
CenteredText3('Dieses Programm verwendet das 'Triton GUI creation system''),
'SpaceS',
CenteredText("'Triton' ist (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>"),
'Space',
'HorizSeparator',
'Space',
CenteredText3("Dieses Programm verwendet die 'tritonrexx.library'"),
'SpaceS',
'HorizGroupSC',
'Space',
TextN("'tritonrexx.library' ist (C) by Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>") 'TRAT_Flags TRTX_NOUNDERSCORE',
'Space',
'EndGroup',
'Space',
'EndGroup',
'BeginRequesterGads',
CenteredButtonRE(localestring(MSG_BUTTON_THANKS),10000),
'EndRequester')
RETURN
/*****************************************************************
*** Routine, die das GUI auf einem neuen PubScreen öffnen läßt ***
******************************************************************/
_NewPubScreen:
IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
delstart=LSEARCH(PubScreen,Screenlist)
IF delstart ~= -1 THEN RXTR_STEMREMOVE(ScreenList,delstart)
ScreenListTags = WindowID(4),
WindowPosition('TRWP_MOUSEPOINTER'),
WindowTitle(localestring(MSG_CHANGEPUBSCREEN)),
WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
PubScreenName(Pubscreen),
QuickHelpOn(HelpBool),
'VertGroupA',
'Space',
'HorizGroupA',
'Space',
ListSel('screenlist',301,0),
'Space',
'EndGroup',
'Space',
'HorizSeparator',
'Space',
'HorizGroupA',
'Space',
ButtonRE(localestring(MSG_BUTTON_CANCEL),302),
'TRDO_QuickHelpString "hier kann man PGP2GUI auf einem anderen Bildschirm öffnen."',
'Space',
'EndGroup Space EndGroup EndGroup EndProject'
PubScreenProject = TR_OPENPROJECT(app,Screenlisttags)
IF PubScreenProject ~= '00000000'x THEN DO
CALL TR_LOCKPROJECT(window)
DO WHILE ende ~= 1
DO WHILE TR_HANDLEMSG(app,'event2')
IF event2.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
nummer = TR_GETATTRIBUTE(PubScreenProject,301,'TRAT_Value')+1
IF PubScreen ~= Screenlist.nummer THEN DO
PubScreen = ScreenList.nummer
ScreenOutPut = 'CON:'LeftBorder'/'TopBorder'/'OutPutWidth'/'OutPutHeight'/Closegadget zum Beenden/SCREEN' PubScreen'/AUTO/CLOSE'
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(PubScreenProject)
CALL TR_CLOSEPROJECT(window)
CALL TR_DELETEAPP(app)
CALL _maintags
END
ELSE ende = 1
END
END
END
ende = 0
CALL TR_UNLOCKPROJECT(window)
CALL TR_CLOSEPROJECT(PubScreenProject)
END
RETURN
_Iconify:
iwinsize.trd_left=10
iwinsize.trd_top=10
iwinsize.trd_width=20
iwinsize.trd_height=10
iwinsize.trd_left2=10
iwinsize.trd_top2=10
iwinsize.trd_width2=10
iwinsize.trd_height2=20
iwinsize.trd_zoomed=30
SleepWin = WindowID(1000),
PubScreenName(PubScreen),
WindowTitle(appname appversion),
WindowDimensions(iwinsize),
'EndProject'
ok=tr_closeproject(window)
window = '00000000'x
dummywindow = TR_OPENPROJECT(app,SleepWin)
return
_uniconify:
ok=tr_closeproject(dummywindow)
dummywindow = '00000000'x
prefs.iwinx=iwinsize.trd_left
prefs.iwiny=iwinsize.trd_top
prefs.iwinw=iwinsize.trd_width
prefs.iwinh=iwinsize.trd_height
prefs.iwinx2=iwinsize.trd_left2
prefs.iwiny2=iwinsize.trd_top2
prefs.iwinw2=iwinsize.trd_width2
prefs.iwinh2=iwinsize.trd_height2
prefs.iwinz=iwinsize.trd_zoomed
window = TR_OPENPROJECT(app,windowtags)
WindowProject=C2D(window) /* zum Locken des Fensters bei About */
IF HelpBool = 1 THEN DO
CALL TR_SetAttribute(window,103,TRMN_Flags,TRMF_CHECKED)
CALL TR_SetAttribute(window,0,TRWI_QuickHelp,1)
END
return
/*******************************************************************************
** Load and interpret arexx script
*******************************************************************************/
loadrexx:
PARSE ARG dir,file,store
IF dir ~= '' THEN DO
IF RIGHT(dir,1) = ':' THEN
file = dir||file
ELSE
file = dir||'/'||file
END
IF ~OPEN('rexxfile',file,'R') THEN
RETURN(FALSE)
rexxtext = READCH('rexxfile',64000)
INTERPRET rexxtext
CALL CLOSE('rexxfile')
IF store ~= '' THEN
INTERPRET store '= rexxtext'
DROP rexxtext
RETURN(TRUE)
/*******************************************************************************
** Text aus dem Catalog-File auslesen, falls vorhanden
*******************************************************************************/
localestring:
PARSE ARG stringnumber
IF catalog ~= 0 THEN
RETURN(GETCATALOGSTR(catalog,stringnumber,strings.stringnumber))
ELSE
RETURN(strings.stringnumber)
_InitAll:
NL = '0a'x
TRUE = 1
FALSE = 0
HelpBool = 0
catalog = 0
/*
** Open libs
*/
IF ~SHOW('LIBRARIES','tritonrexx.library') THEN
IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN
quit('Cannot open tritonrexx.library!',10)
IF ~SHOW(LIBRARIES,'rexxtricks.library') THEN
IF ~ADDLIB('rexxtricks.library',9,-30,38) THEN
quit('Cannot open rexxtricks.library!',10)
IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
IF ~ADDLIB('rexxreqtools.library',9,-30,0) THEN
quit('Cannot open rexxreqtools.library!',10)
IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
IF ~ADDLIB('rexxsupport.library',9,-30,0) THEN
quit('Cannot open rexxsupport.library!',10)
/*
** Set current dir
*/
PARSE SOURCE . . . script .
progdir = PATHPART(script)
booll = LENGTH(progdir)
booli= LASTPOS(":",progdir)
boolh= LASTPOS("/",progdir)
IF booli <= booll THEN progdir2=progdir||"/"
IF boolh == 0 THEN progdir2=progdir||"/"
CALL PRAGMA('D',progdir)
/*
** Read default strings, open locale.library and catalog
*/
IF ~loadrexx(progdir,'PGP2TRXGUI.strings','') THEN
quit('Error reading file "PGP2TRXGUI.strings"!'),10)
IF ~SHOW('LIBRARIES','locale.library') THEN
CALL ADDLIB('locale.library',0,-30,0)
IF SHOW('LIBRARIES','locale.library') THEN DO
language = GETENV('language')
IF language ~= '' THEN
catalog = OPENCATALOG(MAKEPATH(progdir,'catalogs/' || language || '/PGP2TRXGUI.catalog'),'english',0)
IF catalog = 0 THEN
catalog = OPENCATALOG('PGP2TRXGUI.catalog','english',0)
END
IF PubScreen == "" THEN
PubScreen = RXTR_GETDEFAULTPUBSCREEN()
/**********************************
*** Standard-Output umlenken ;) ***
***********************************/
ScreenOutPut = 'CON:'LeftBorder'/'TopBorder'/'OutPutWidth'/'OutPutHeight'/Closegadget zum Beenden/SCREEN' PubScreen'/AUTO/CLOSE'
CALL CLOSE('STDOUT')
IF ~OPEN('STDOUT',ScreenOutPut,'W') THEN
EXIT(10)
CALL CLOSE('STDIN')
CALL OPEN('STDIN','*','W')
CALL PRAGMA('*','STDOUT')
CALL PRAGMA('*','STDIN')
/*************************
*** PGP-Pfad ermitteln ***
**************************/
PGPPath=RXTR_GETENV(PgpVariable)
IF PGPPath == "" THEN DO
Say "Sie müssen eine Varible mit dem PGP-Pfad anlegen!"
EXIT(5)
END
Laenge=WORDLENGTH(PgpPath,1)
SELECT
WHEN LASTPOS("/",PgpPath) = Laenge THEN NOP
WHEN LASTPOS(":",PgpPath) = Laenge THEN NOP
OTHERWISE
PgpPath = PgPPath||"/"
END
RETURN
/*******************************************************************************
** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
*******************************************************************************/
break_c:
failure:
halt:
ioerr:
syntax:
SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
SAY SOURCELINE(sigl)
IF app ~= '00000000'x THEN
CALL TR_DELETEAPP(app)
EXIT(10)
/*EOS*/